1. Field of the Invention
This invention relates generally to packet communications, and, more particularly, to methodologies and concomitant circuitry for adaptively controlling the number of packets and the error-correction applied to each packet in layered coding communications.
2. Description of the Background
Traditionally, voice and data traffic were carried over different networksxe2x80x94voice over circuit-switched telephone networks and data over Internet Protocol (IP)-based packet networks. However, this dichotomy is rapidly disappearing and voice traffic is increasingly being carried over IP-based packet networks. In addition, due to growing demand for xe2x80x9canywhere, anytimexe2x80x9d communication, the end users are often connected to the network over a wireless link. This means that the voice traffic is increasingly being carried over wireless-IP networks.
To fully understand the import of carrying voice traffic in the wireless environment, it is necessary to consider related background, as follows. In conventional digital telephone networks, an 8-bit sample of the voice conversation is taken once every 125 microseconds and sent over the digital network. However, in IP networks, sending an 8-bit data once every 125 microseconds would result in considerable bandwidth overhead because each IP packet contains a 20-byte header. Therefore, voice-over-IP applications typically include multiple samples in a packet. For example, a voice-over-IP application may collect 320 8-bit samples over a period of 40 ms and send all the 320 samples as a single IP packet. This is referred to as xe2x80x9cpacketizationxe2x80x9d. In addition, voice-over-IP applications often use techniques such as silence suppression and compression to reduce the bandwidth required to relay voice conversations. (However, for ease of understanding, it is assumed that silence suppression and compression techniques are not being used by the application. Silence suppression and compression techniques can be readily introduced during the packetization process using conventional techniques).
One problem with packetization is that packet losses are fairly common in IP networks and a loss of a single packet will result in the loss of many samples and thereby degrade the quality of regenerated voice signal. To overcome this problem, a technique called layered coding has been devised. Representative of art exploiting layered coding is the article entitled xe2x80x9cExperiments with a Layered Transmission Scheme over the Internetxe2x80x9d, authored by T. Turletti et al., and published as INRIA Research Report No. 3296, November 1997. In the example of the foregoing paragraph, voice traffic is sent as a single stream of IP packets. In layered coding, however, the voice traffic is sent as several independent streams of IP packets. Each stream of packets is called a xe2x80x9clayerxe2x80x9d. At the receiver, each layer can be decoded independently of the other layers. Since packets from a plurality of layers are available at the time of decoding, the quality of regenerated voice signal will be better. The advantage of this approach is that loss of a packet means the loss of only one layer at the decoder, which in turn does not significantly degrade the quality of the regenerated signal.
For example, suppose that a voice-over-IP application uses four layers. Then, one possible approach for layered coding is to send four IP packets once every 160 ms where the four IP packets are generated as follows. In 160 ms, the application will collect 320xc3x974 8-bit samples. These samples are interleaved to form four packets. That is, the first packet will contain samples 1, 5, 9, 13, . . . , 1273, and 1277. The second packet will contain samples 2, 6, 10, 14, . . . , 1274, and 1278. The third packet will contain the samples 3, 7, 11, 15, . . . , 1275, and 1279. Finally, the fourth packet will contain the samples 4, 8, 12, 16, . . . , 1276, and 1280. The advantage of such an interleaving scheme is that, if a packet is lost, then only one in every four samples is lost, and the information contained in a lost sample can be fairly accurately estimated from the available nearby samples using, for example, digital interpolation.
Layered coding is very effective in dealing with packet losses if the losses are spread out in time such that the likelihood of several consecutive packet losses is small. Unfortunately, when an IP stream traverses a wireless link the likelihood of several consecutive losses is often not very small. This is because packet losses in a wireless link occur when the channel quality is poor and the resulting bit error rate is high. Since channel quality may remain poor for several up to hundreds of milliseconds, several consecutive packets are often lost.
The art is devoid, however, of techniques for adaptively controlling the number of packets transmitted in layered coding communications, as well as adaptively determining the error-correction to be applied to the packets, wherein the adaptation is based upon the bit-error rate of the over-the-air propagation path from transmitter to receiver (mobile terminal to base station in one direction, and vice versa in the other direction).
These shortcomings as well as other limitations and deficiencies of the prior art are obviated, in accordance with the present invention, by a methodology and concomitant circuitry wherein, generally, an adaptive forward error correction technique is introduced into the layered coding approach for better delivery of voice traffic over a wireless-IP link.
Broadly, in accordance with a method aspect of the present invention, a method for processing a plurality of packets to propagate over a path having a measurable bit-error rate includes: (a) selecting for propagation a sequence of packets from the plurality of packets based upon the bit-error rate; and (b) encoding each of the packets in the sequence with a forward error-correcting code determined with reference to the bit error rate.
Broadly, in accordance with a system aspect of the present invention, a transmitter for processing a plurality of packets to propagate over a includes: (a) a generator to select for propagation a sequence of packets from the plurality of packets based upon the bit-error rate; and (b) an encoder for encoding each of the packets in the sequence with a forward error-correcting code determined with reference to the bit error rate.